package com.efast.cafe.portal.service.query;

import java.util.List;

import org.apache.ibatis.annotations.Param;

import com.efast.cafe.framework.bean.ResultBean;
import com.efast.cafe.portal.bean.query.QueryBean;
import com.efast.cafe.portal.bean.query.TableConditionBean;
import com.efast.cafe.portal.bean.query.TemplateBean;
import com.efast.cafe.portal.bean.query.TemplateObjBean;
import com.efast.cafe.portal.entity.query.TableView;
import com.efast.cafe.portal.entity.query.Template;
import com.efast.cafe.portal.entity.query.TemplateJsonObj;
import com.efast.cafe.portal.remote.query.QueryTemplateService;


public interface IQueryTemplateService extends QueryTemplateService{


	
	Template addQueryTemplate(Template template, List<TableView> tableViews, List<TableConditionBean> tableConditions,String contextPath,Integer systemId);
	
	
	TemplateBean queryTemplateListByPage(TemplateBean templateBean);
	
	TemplateObjBean queryTempalteDetail(Integer templateId,Integer templateSaveId);
	
	
	
	Template updateQueryTemplate(Template template, List<TableView> tableViews, List<TableConditionBean> tableConditions,String contextPath);
	
	int deleteQueryTemplate(Integer templateId);
	
	int addTemplateSave(TemplateJsonObj templateSave);
	
	int updateTemplateSave(TemplateJsonObj templateSave);
	
	int deleteTemplateSave(Integer id);
	
	ResultBean queryTemplateSaveBeanList(QueryBean queryBean);
	
	ResultBean generateSqlByTemplate(QueryBean querys);

	/**
	 * 通过moduleId查询template
	 * @Date        :      2017年9月25日
	 * @param id
	 * @param code
	 * @param i18nName
	 * @return
	 */
	List<TemplateBean> selectTemplateListByMouduleId(Integer id,String code,String i18nName);
	
	/**
	 * 查询条件lsit
	 * @Date        :      2017年9月25日
	 * @param queryBean
	 * @return
	 */
	ResultBean queryTemplateSaveListAll(QueryBean queryBean);


	void updateFormLayout(TemplateBean template);
	
	ResultBean queryModuleList();
}
